import 'dart:convert';

class Contrast {
  static Map<String, dynamic> _oldparame;

  /// ### 对比函数
  /// #### [data] Map<String, dynamic>|必填|需要赋值的内容
  static bool contrastData(Map<String, dynamic> data) {
    bool isImplement = false;
    Map<String, dynamic> _temBackups = json.decode(json.encode(data));

    // 移除不需要比对的字段
    _temBackups = _remove(_temBackups);

    // 根据数据进行验证
    if(_oldparame != null) {
      _temBackups.forEach((key, value) {
        if(data[key] != _oldparame[key]) {
          isImplement = true;
          return isImplement;
        }
        //print("123");
      });
    }

    // 深度拷贝
    _oldparame = json.decode(json.encode(_remove(_temBackups)));

    // 返回状态
    return isImplement;
  }

  /// ### 初始化_oldparame的内容
  /// #### [data] Map<String, dynamic>|必填|需要赋值的内容
  static void initContrast(Map<String, dynamic> data) {
    Map<String, dynamic> _temBackups = json.decode(json.encode(data));


    _oldparame = json.decode(json.encode(_remove(_temBackups)));
  }

  /// ### 移除不需要的字段
  /// #### [data] Map|必填|需要调整的数据
  static Map _remove(Map data) {
    data.remove("sourceId");
    data.remove("equipmentId");
    data.remove("equipmentPositionId");
    data.remove("page");
    data.remove("rows");
    return data;
  }

}